;Exam2014H26FallPrg2
;Exam2014H26HPrg2 ݖR
;LC{[h炢͂A
;ꂼP꒷QiPOiɕϊB
;ɕבւiSORTjBŌɁA
;l𐔎ɍĕϊďɕ\B
;----------------------------
MAIN START
	LD GR2,=0       ;JE^
LOOP3 IN BUF,ILEN
	LD GR0,ILEN
	JZE EOF         ; JMI EOFĩR[h̕ύXj
;RFIN ߂ŃLC{[h當͂ꍇA
; ̕[̎ ILEN ɂ -1 ł͂Ȃă[
; i[BiVisible Inside ̎dlj
	LD GR3,=0       ;zɊi[e
	LAD GR4,BUF
LOOP4 LD GR5,0,GR4   ;GR5 <---
	AND GR5,=#000F  ;̐l
	SLL GR3,4       ;ς̓eグ
	OR GR3,GR5      ;󂢂E[Srbgɐli[
	ADDA GR4,=1
	SUBA GR0,=1
	JNZ LOOP4
	ST GR3,ARRAY,GR2 ;QiPOiɂi[
	ADDA GR2,=1
	JUMP LOOP3
EOF LAD GR1,ARRAY
	CALL SORT
	LD GR4,=' '      ;󔒕ݒ
LOOP5 LD GR0,0,GR1    ;
	LD GR5,=3        ;[vJE^ݒ
LOOP6 LD GR3,GR0 ;
	AND GR3,=#000F   ;e  C
	;̐loB
	OR GR3,=#0030    ;l𐔎ijɕϊ
	ST GR3,BUF,GR5   ;obt@ɐݒ
	SUBA GR5,=1
	JMI WRITE
	SRL GR0, 4       ;  f  I
	;̐E[SrbgɈړi[B
	JNZ LOOP6
LOOP7 ST GR4,BUF,GR5 ;obt@ɋ󔒂ݒ
	SUBA GR5,=1
	JMI WRITE
	JUMP LOOP7
WRITE OUT BUF,OLEN
	LAD GR1,1,GR1
	SUBA GR2,=1
	JNZ LOOP5
	RET
BUF DS 7 ; 256iύXj
ILEN DS 1
OLEN DC 4
ARRAY DS 10 ; 100 iύXj
	END
;--------------
SORT START
	RPUSH
	SUBA GR2,=1   ;[vJE^Pݒ
LOOP1 LD GR3,GR2   ;[vJE^Qݒ
	LD GR4,GR1    ;GR4 <--- rvf̃AhX
LOOP2 LD GR5,0,GR4
	CPL GR5,1,GR4 ;̗vfr
 	JMI CONT      ;@A
	LD GR6,1,GR4  ;̗vfւ
	ST GR5,1,GR4
	ST GR6,0,GR4
CONT ADDA GR4,=1
	SUBA GR3,=1
	JPL LOOP2
	SUBA GR2,=1
	JPL LOOP1    ;@G
	RPOP
	RET
	END
;---------------